

export class Set {
    has(value: number): boolean {
        return true
    }

    add(value: number): Set {
        return this
    }
}

// 继承使用extends 关键字，跟java一样
export class MutableSet extends Set{
    has(value: number): boolean {
        // ts中也是用super来表示指向父类的引用
        return super.has(value)
    }

    //为了避免this的方法的签名被覆盖掉，返回类型为this，让ts去infer具体类型
    add(value: number): this {
        return this
    }
}